<%@ Application Language="C#" %>

<script runat="server">

    void Application_Start(object sender, EventArgs e) 
    {
        Application["onlinenum"] = 0;
      
    }
    
    void Application_End(object sender, EventArgs e) 
    {
        //  Code that runs on application shutdown
        Application.Clear();

    }
        
    void Application_Error(object sender, EventArgs e) 
    { 
        // Code that runs when an unhandled error occurs

    }

    void Session_Start(object sender, EventArgs e) 
    {
        // Code that runs when a new session is started
        Application.Lock();
        int onlinenum = int.Parse(Application["onlinenum"].ToString());
        onlinenum++;
        Application["onlinenum"]=onlinenum;
        Application.UnLock();
        
        //create session
   
        Session["user"] = "";
        Session["logedin"] = false;
        Session["shoppingcart"] = new System.Collections.Generic.List<CartItem>();

    }

    void Session_End(object sender, EventArgs e) 
    {
        // Code that runs when a session ends. 
        // Note: The Session_End event is raised only when the sessionstate mode
        // is set to InProc in the Web.config file. If session mode is set to StateServer 
        // or SQLServer, the event is not raised.
        Application.Lock();
        int onlinenum = int.Parse(Application["onlinenum"].ToString());
        onlinenum--;
        Application["onlinenum"] = onlinenum;
        Application.UnLock();

    }
       
</script>
